﻿using Karma.Framework.Core.Services.Infrastructure;
using Karma.Framework.Core.Services.Invoker;
using Karma.Framework.Core.Services.Invoker.Adapter;
using Karma.Framework.Core.Services.Invoker.Processor;
using Karma.Framework.Core.Services.Web;
using Ninject.Core;

namespace Karma.Framework.Core.Services
{
    public class ServicesModule : StandardModule
    {
        public override void Load()
        {
            Bind<IServiceInvoker>().To<ServiceInvoker>();
            Bind<IHttpServiceInvoker>().To<HttpServiceInvoker>();

            Bind<IInvokerFacade>().To<DefaultInvokerFacade>();
            Bind<IAdapter>().To<HttpAdapter>();
            Bind<IProcessor>().To<JsonProcessor>();

            Bind<IEmailService>().To<EmailService>();
        }
    }
}
